﻿using System;
using System.Collections.Generic;

namespace GurLoader.GlobalHotkey
{
    public interface IHotKeyHost
    {
        /// <summary>
        /// Will be raised if any registered hotKey is pressed
        /// </summary>
        event EventHandler<HotKeyEventArgs> HotKeyPressed;

        /// <summary>
        /// All registered hotKeys
        /// </summary>
        IEnumerable<HotKey> HotKeys { get; }

        /// <summary>
        /// Adds an hotKey.
        /// </summary>
        /// <param name="hotKey">The hotKey which will be added. Must not be null and can be registed only once.</param>
        void AddHotKey(HotKey hotKey);

        /// <summary>
        /// Removes an hotKey
        /// </summary>
        /// <param name="hotKey">The hotKey to be removed</param>
        /// <returns>True if success, otherwise false</returns>
        bool RemoveHotKey(HotKey hotKey);
    }
}